knitr::opts_chunk$set(echo = TRUE)
# Carga de paquetes
library(dplyr)
library(sf)
library(DT)
library(plotly)
library(leaflet)
library(raster)
# Registros de presencia de JUnco vulcani
primates <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/primates-cr-registros.csv",
options = c(
"X_POSSIBLE_NAMES=decimalLongitude",
"Y_POSSIBLE_NAMES=decimalLatitude"
),
quiet = TRUE
)
# Asignacion de CRS
st_crs(primates) = 4326
# Capa geoespacil de cantones
# Carga de la capa de cantones
cantones <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_cantones_simp_wgs84.geojson",
quiet = TRUE
)
# Cruce espacial con la tabla de cantones, para obtener el nombre del cantón
primates <-
primates %>%
st_join(cantones["canton"])
Se utilisa el conjunto de datos sobre 4 especies de primates de Costa Rica. Ateles geoffroyi, Cebus capucinus, Alouatta palliata, Saimiri oerstedii que se refieren respectivamente al mono araña, mono carablanca, mono congo y mono ardilla.
# Tabla de registros de presencia
primates %>%
st_drop_geometry() %>%
dplyr::select(family, species, stateProvince, canton, locality, eventDate) %>%
datatable(
colnames = c("Familia","Especie","Provincia", "Canton", "Localidad", "Fecha"),
options = list(searchHighlight = TRUE)
)
# cargar colores
colors <- c('rgb(211,94,96)', 'rgb(128,133,133)', 'rgb(144,103,167)', 'rgb(171,104,87)')
#grafico pastel
plot_ly(
primates,
labels = ~ species,
type = "pie",
textposition = "inside",
textinfo = "label+percent",
insidetextfont = list(color = "#FFFFFF"),
marker = list(colors = colors)) %>%
layout(
title = "Cantidad de registros para cada especie de primate",
xaxis = list(
showgrid = FALSE,
zeroline = FALSE,
showticklabels = FALSE
),
yaxis = list(
showgrid = FALSE,
zeroline = FALSE,
showticklabels = FALSE
)
)
# Selección de la especie de primate
# capa de Ateles geoffroyi
Ateles_geoffroyi <-
primates %>%
filter(species == "Ateles geoffroyi")
# capa de Cebus capucinus
Cebus_capucinus <-
primates %>%
filter(species == "Cebus capucinus")
# capa de Alouatta palliata
Alouatta_palliata <-
primates %>%
filter(species == "Alouatta palliata")
# capa de Saimiri oerstedii
Saimiri_oerstedii <-
primates %>%
filter(species == "Saimiri oerstedii")
# Especificación del directorio de trabajo (debe utilizarse una ruta existente)
setwd("C:/Users/SARA/Desktop/UCR/Procesamiento_de_datos_geograficos/Tareas y Proyectos/Tareas/Tarea03")
# Obtención de la capa de altitud
alt <- getData(
"worldclim",
var = "alt",
res = .5,
lon = -84,
lat = 10
)
# Capa de altitud recortada para los límites exactos de Costa Rica
altitud <-
alt %>%
crop(cantones) %>%
mask(cantones)
# Paleta de colores
pal <- colorNumeric(
c("#006400", "#FFFF00", "chocolate1", "#FF0000"),
values(altitud),
na.color = "transparent"
)
# Mapa de registros de presencia
primates %>%
dplyr::select(stateProvince,
canton,
locality,
eventDate,
family,
species) %>%
leaflet() %>%
addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
addProviderTiles(providers$Stamen.TonerLite, group = "Stamen Toner Lite") %>%
addProviderTiles(providers$Esri.WorldImagery, group = "Imágenes de ESRI") %>%
addRasterImage(
altitud,
colors = pal,
opacity = 0.7,
group = "Capa raster"
) %>%
addPolygons(
data = cantones,
color = "tan4",
fillColor = "transparent",
stroke = TRUE,
weight = 1.0,
) %>%
addCircleMarkers(
data = Ateles_geoffroyi,
stroke = F,
radius = 4,
fillColor = 'gray',
fillOpacity = 0.8,
popup = paste(
Ateles_geoffroyi$stateProvince,
Ateles_geoffroyi$canton,
Ateles_geoffroyi$locality,
Ateles_geoffroyi$eventDate,
Ateles_geoffroyi$family,
Ateles_geoffroyi$species,
sep = '<br/>'
),
group = "Ateles geoffroyi"
) %>%
addCircleMarkers(
data = Cebus_capucinus,
stroke = F,
radius = 4,
fillColor = 'blue',
fillOpacity = 0.8,
popup = paste(
Cebus_capucinus$stateProvince,
Cebus_capucinus$canton,
Cebus_capucinus$locality,
Cebus_capucinus$eventDate,
Cebus_capucinus$family,
Cebus_capucinus$species,
sep = '<br/>'
),
group = "Cebus capucinus"
) %>%
addCircleMarkers(
data = Alouatta_palliata,
stroke = F,
radius = 4,
fillColor = "orange",
fillOpacity = 0.8,
popup = paste(
Alouatta_palliata$stateProvince,
Alouatta_palliata$canton,
Alouatta_palliata$locality,
Alouatta_palliata$eventDate,
Alouatta_palliata$family,
Alouatta_palliata$species,
sep = '<br/>'
),
group = "Alouatta palliata"
) %>%
addCircleMarkers(
data = Saimiri_oerstedii,
stroke = F,
radius = 4,
fillColor = 'red',
fillOpacity = 0.8,
popup = paste(
Saimiri_oerstedii$stateProvince,
Saimiri_oerstedii$canton,
Saimiri_oerstedii$locality,
Saimiri_oerstedii$eventDate,
Saimiri_oerstedii$family,
Saimiri_oerstedii$species,
sep = '<br/>'
),
group = "Saimiri oerstedii"
) %>%
addLayersControl(
baseGroups = c("OpenStreetMap", "Stamen Toner Lite", "Imágenes de ESRI"),
overlayGroups = c(
"Ateles geoffroyi",
"Cebus capucinus",
"Alouatta palliata",
"Saimiri oerstedii",
"Capa raster"
)
) %>%
addMiniMap(
tiles = providers$Stamen.OpenStreetMap.Mapnik,
position = "bottomleft",
toggleDisplay = TRUE
)